package com.turnos.gestion.administracion;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.coreweb.domain.Domain;
import com.coreweb.dto.Assembler;
import com.coreweb.dto.DTO;
import com.coreweb.util.MyArray;
import com.turnos.domain.ClienteImpresora;
import com.turnos.domain.RegisterDomain;

public class ImpresorasAssembler extends Assembler {

	public ImpresoraDTO getImpresorasDTO() throws Exception{
		ImpresoraDTO d = (ImpresoraDTO) this.domainToDto(null);
		return d;
	}
	
	
	@Override
	public Domain dtoToDomain(DTO dto) throws Exception {
		
		// borrar los que ya están, y cargar toodo de nuevo
		RegisterDomain rr = RegisterDomain.getInstance();
		rr.deleteAllObjects(ClienteImpresora.class.getName());
		
		ArrayList<MyArray> arr = ((ImpresoraDTO) dto).getClienteImpresoras();
		for (Iterator iterator = arr.iterator(); iterator.hasNext();) {
			MyArray dd = (MyArray) iterator.next();
			ClienteImpresora cl = new ClienteImpresora();
			cl.setAlias((String)dd.getPos1());
			cl.setCliente((String)dd.getPos2());
			cl.setImpresora((String)dd.getPos3());
			rr.saveObject(cl, this.getLogin());
		}
		
		return null;
	}

	@Override
	public DTO domainToDto(Domain domain) throws Exception {
		//levantar todas los movimientos
		
		RegisterDomain rr = RegisterDomain.getInstance();
		DTO dto = new ImpresoraDTO();
		ImpresoraDTO dd = (ImpresoraDTO) dto;
		List l = rr.getObjects(ClienteImpresora.class.getName());
		for (Iterator iterator = l.iterator(); iterator.hasNext();) {
			ClienteImpresora ci = (ClienteImpresora) iterator.next();
			MyArray ma = new MyArray();
			ma.setId(ci.getId());
			
			ma.setPos1(ci.getAlias());
			ma.setPos2(ci.getCliente());
			ma.setPos3(ci.getImpresora());
			
			dd.getClienteImpresoras().add(ma);
		}	
		return (DTO) dto;
	}

}
